home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / network / base / netkit-b.07a / netkit-b / NetKit-B-0.07A / ftp / ftp_var.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-20  |  6.5 KB  |  159 lines

  1. /*
  2.  * Copyright (c) 1985, 1989 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  *    This product includes software developed by the University of
  16.  *    California, Berkeley and its contributors.
  17.  * 4. Neither the name of the University nor the names of its contributors
  18.  *    may be used to endorse or promote products derived from this software
  19.  *    without specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  *
  33.  *    from: @(#)ftp_var.h    5.9 (Berkeley) 6/1/90
  34.  *    $Id: ftp_var.h,v 1.5 1996/07/20 19:50:27 dholland Exp $
  35.  */
  36.  
  37. /*
  38.  * FTP global variables.
  39.  */
  40.  
  41. #include <setjmp.h>
  42. #include <sys/param.h>
  43.  
  44. /*
  45.  * Tick counter step size.
  46.  */
  47. #define TICKBYTES     10240
  48.  
  49. #ifndef Extern
  50. #define Extern extern
  51. #endif
  52.  
  53.  
  54. /*
  55.  * Options and other state info.
  56.  */
  57. Extern int    trace;        /* trace packets exchanged */
  58. Extern int    hash;        /* print # for each buffer transferred */
  59. Extern int    tick;        /* print byte counter during transfers */
  60. Extern int    sendport;    /* use PORT cmd for each data connection */
  61. Extern int    verbose;    /* print messages coming back from server */
  62. Extern int    connected;    /* connected to server */
  63. Extern int    fromatty;    /* input is from a terminal */
  64. Extern int    interactive;    /* interactively prompt on m* cmds */
  65. Extern int    debug;        /* debugging level */
  66. Extern int    bell;        /* ring bell on cmd completion */
  67. Extern int    doglob;        /* glob local file names */
  68. Extern int    autologin;    /* establish user account on connection */
  69. Extern int    proxy;        /* proxy server connection active */
  70. Extern int    proxflag;    /* proxy connection exists */
  71. Extern int    sunique;    /* store files on server with unique name */
  72. Extern int    runique;    /* store local files with unique name */
  73. Extern int    mcase;        /* map upper to lower case for mget names */
  74. Extern int    ntflag;        /* use ntin ntout tables for name xlation */
  75. Extern int    mapflag;    /* use mapin mapout templates on file names */
  76. Extern int    code;        /* return/reply code for ftp command */
  77. Extern int    crflag;        /* if 1, strip car. rets. on ascii gets */
  78. Extern char     pasv[64];       /* passive port for proxy data connection */
  79. Extern int      passivemode;    /* passive mode enabled */
  80. Extern char    *altarg;    /* argv[1] with no shell-like preprocessing  */
  81. Extern char    ntin[17];    /* input translation table */
  82. Extern char    ntout[17];    /* output translation table */
  83. Extern char    mapin[MAXPATHLEN];    /* input map template */
  84. Extern char    mapout[MAXPATHLEN];    /* output map template */
  85. Extern char    typename[32];        /* name of file transfer type */
  86. Extern int    type;            /* requested file transfer type */
  87. Extern int    curtype;        /* current file transfer type */
  88. Extern char    structname[32];        /* name of file transfer structure */
  89. Extern int    stru;            /* file transfer structure */
  90. Extern char    formname[32];        /* name of file transfer format */
  91. Extern int    form;            /* file transfer format */
  92. Extern char    modename[32];        /* name of file transfer mode */
  93. Extern int    mode;            /* file transfer mode */
  94. Extern char    bytename[32];        /* local byte size in ascii */
  95. Extern int    bytesize;        /* local byte size in binary */
  96.  
  97. Extern char    *hostname;    /* name of host connected to */
  98. Extern int    unix_server;    /* server is unix, can use binary for ascii */
  99. Extern int    unix_proxy;    /* proxy is unix, can use binary for ascii */
  100.  
  101. /*Extern struct    servent *sp;*/    /* service spec for tcp/ftp */
  102. Extern int    ftp_port;    /* htons'd port number for ftp service */
  103.  
  104. Extern sigjmp_buf toplevel;    /* non-local goto stuff for cmd scanner */
  105.  
  106. Extern char    line[200];    /* input line buffer */
  107. Extern char    *stringbase;    /* current scan point in line buffer */
  108. Extern char    argbuf[200];    /* argument storage buffer */
  109. Extern char    *argbase;    /* current storage point in arg buffer */
  110. Extern int    margc;        /* count of arguments on input line */
  111. Extern char    *margv[20];    /* args parsed from input line */
  112. Extern int    cpend;        /* flag: if != 0, then pending server reply */
  113. Extern int    mflag;        /* flag: if != 0, then active multi command */
  114.  
  115. Extern int    options;    /* used during socket creation */
  116.  
  117. /*
  118.  * Format of command table.
  119.  */
  120. struct cmd {
  121.     char    *c_name;    /* name of command */
  122.     char    *c_help;    /* help string */
  123.     char    c_bell;        /* give bell when command completes */
  124.     char    c_conn;        /* must be connected to use command */
  125.     char    c_proxy;    /* proxy server may execute */
  126.     void    (*c_handler)(int, char *[]);    /* function to call */
  127. };
  128.  
  129. struct macel {
  130.     char mac_name[9];    /* macro name */
  131.     char *mac_start;    /* start of macro in macbuf */
  132.     char *mac_end;        /* end of macro in macbuf */
  133. };
  134.  
  135. Extern int macnum;            /* number of defined macros */
  136. Extern struct macel macros[16];
  137. Extern char macbuf[4096];
  138.  
  139. extern    char *tail();
  140. extern    char *remglob();
  141. extern    char *mktemp();
  142.  
  143. void makeargv(void);
  144. int login(const char *host);
  145. int command(const char *fmt, ...);
  146. void sendrequest(char *cmd, char *local, char *remote, int printnames);
  147. int another(int *pargc, char ***pargv, const char *prompt);
  148. void blkfree(char **av0);
  149. void fatal(const char *msg);
  150. int getreply(int expecteof);
  151. void domacro(int argc, char *argv[]);
  152. void pswitch(int flag);
  153. void recvrequest(char *cmd, char *local, char *remote, 
  154.          char *lmode, int printnames);
  155. int xruserpass(const char *host, char **aname, char **apass, char **aacct);
  156. void setpeer(int argc, char *argv[]);
  157. void quit(int argc, char *argv[]);
  158. void changetype(int newtype, int show);
  159.